Windows Forms - Funções de Diretório e Pastas
Module Diretorios

Retorna uma lista de arquivos que atendem um critério de seleção 1

    ''' <summary>
    ''' Retorna com uma lista de string dos nomes dos arquivos tipo *.wav encontrados na pasta MyMusic
    ''' </summary>
    ''' <returns></returns>
    Public Function ObtemArqsMusica() As List(Of String)
        Dim a As New List(Of String)
        Dim b As String

        For Each MusicFile As String In My.Computer.FileSystem.GetFiles _
        (My.Computer.FileSystem.SpecialDirectories.MyMusic, FileIO.SearchOption.SearchAllSubDirectories, "*.wav*")

            Dim MusicFileInfo As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(MusicFile.ToString())

            b = MusicFileInfo.Directory.Parent.Name + "\" +
              MusicFileInfo.Directory.Name + "\" +
              MusicFileInfo.Name
            a.Add(b)
        Next
        Return a
    End Function

Retorna uma lista de arquivos que atendem um critério de seleção 2

    ''' <summary>
    '''
    ''' </summary>
    ''' <param name="tipo">Tipo do arquivo a procurar "*.*" ou "*.wav*" por exemplo</param>
    ''' <returns></returns>
    Public Function ObtemArqs(Pasta As String, Tipo As String) As List(Of String)
        Dim a As New List(Of String)
        Dim b As String

        For Each Arquivo As String In My.Computer.FileSystem.GetFiles(Pasta, FileIO.SearchOption.SearchAllSubDirectories, Tipo)

            Dim MusicFileInfo As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(Arquivo.ToString())

            b = MusicFileInfo.Directory.Parent.Name + "\" +
              MusicFileInfo.Directory.Name + "\" +
              MusicFileInfo.Name
            a.Add(b)
        Next
        Return a
    End Function

Abrindo a Caixa de diálogo para abertura de aquivo

Não gosto deste componente porque abre o diálogo de pastas mas não permite que eu copie o nome de uma pasta para iniciar a procura de um ponto específico do disco.

    ''' <summary>
    ''' root de pesquisa
    ''' </summary>
    ''' <param name="ID"></param>
    ''' <returns></returns>
    Public Function PegaPasta(ID As String) As String
        Dim fbd1 As New FolderBrowserDialog

        fbd1.Description = "Selecione a pasta " + ID + " : "
        fbd1.RootFolder = Environment.SpecialFolder.MyComputer
        fbd1.ShowNewFolderButton = True

        'Exibe a caixa de diálogo
        If fbd1.ShowDialog = Windows.Forms.DialogResult.OK Then

            Return fbd1.SelectedPath
        Else
            Return ""
        End If

    End Function
End Module